import uni from '@dcloudio/vite-plugin-uni'
// import uniHot from 'uni-pages-hot-modules'
import h5ProdEffectPlugin from 'uni-vite-plugin-h5-prod-effect'
import AutoImport from 'unplugin-auto-import/vite'
import { defineConfig } from 'vite'

// 路由热重载模块化
// uniHot.setupHotJs()

// https://vitejs.dev/config/
export default defineConfig(({ command }) => {
	const plugins: Array<any> = []
	// 开发环境则需要创建热更新插件
	if (command === 'serve') {
		// plugins.push(uniHot.createHotVitePlugin())
	}
	return {
		plugins: [
			uni(),
			h5ProdEffectPlugin(), // 对h5 production环境打包时的特殊处理，否则uni-crazy-router在这个环境会异常
			AutoImport({
				dts: 'src/auto-import.d.ts', // 生成 `auto-import.d.ts` 全局声明
				imports: ['vue', 'vue-router', 'pinia', 'uni-app'] // 自动导入vue和vue-router相关函数
			}),
			...plugins
		],
		build: {
			// 指定输出路径
			outDir: 'dist',
			// 指定生成静态资源的存放路径
			assetsDir: 'assets',
			// 小于此阈值的资源将内联为 base64 编码
			assetsInlineLimit: 4096,
			// chunk 大小警告的限制（以 kbs 为单位）
			chunkSizeWarningLimit: 500,
			// 关闭压缩大小报告，构建性能
			reportCompressedSize: false
		},
		server: {
			// 是否自动打开浏览器
			open: true,
			// 服务器端口号
			port: 8888,
			// 服务器主机名，如果允许外部访问，可设置为"0.0.0.0"
			host: '0.0.0.0',
			// 设为 true，若端口已被占用则会直接退出，而不是尝试下一个可用端口
			strictPort: false,
			// 为开发服务器配置 CORS
			cors: true,
			// 开启热更新
			hmr: true
			// 服务器代理
			// proxy: {
			// 	'/api': {
			// 		target: 'http://10.10.10.168:8888',
			// 		rewrite: path => path.replace(/^\/api/, ''),
			// 		changeOrigin: true
			// 	}
			// }
		}
	}
})
